Mobile wireless customer micro-care apparatus and method

ABSTRACT

In one example, a data package created by a particular wireless mobile device, and comprising metrics collected by the wireless mobile device, is retrieved. The metrics concern performance of the wireless mobile device in a wireless communication network, and are transformed into measures that enable derivation of a key performance indicator concerning the performance of the wireless mobile device. An enriched measure is generated by processing the measures based on correlations of wireless mobile device events in a time sequence, and the enriched measure is transformed into a KPI that is specific to the performance of the wireless mobile device. The KPI of the wireless mobile device is compared to a KPI of the population of wireless mobile devices, and results of the comparison of KPIs serve as a basis to resolve a problem regarding operation of the wireless mobile device.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/143,333, entitled MOBILE WIRELESS CUSTOMER MICRO-CARE APPARATUS ANDMETHOD, filed Sep. 26, 2018, which is a divisional of U.S. patentapplication Ser. No. 14/142,204 (now abandoned), entitled MOBILEWIRELESS CUSTOMER MICRO-CARE APPARATUS AND METHOD, filed Dec. 27, 2013,each of which applications claim the benefit of priority of U.S.Provisional Patent Application No. 61/769,188, entitled MOBILE WIRELESSCUSTOMER MICRO-CARE APPARATUS AND METHOD, filed Feb. 25, 2013. All ofthe aforementioned applications are incorporated herein in theirrespective entireties by this reference.

BACKGROUND

One dimension of the transformation of global communications is theincreasing complexity of devices. Coupled to the fragmentation of theindustry is the dramatic growth in adoption. The result is that thebottom line of Operators and Device Manufactures is substantiallyimpacted by the cost of returned devices and other costs of supportingdissatisfied customers.

A high rate of customer churn is attributed to several expensivephenomena: when customers report their frustrations, long hold times forsupport calls are the first experience. On the vendor carrier side, theyincur a high cost of support without much benefit. Many calls arerepeated without successful resolution. Frequently the proposed solutionis to offer to exchange phones for the customer but returned devicesexhibit a high rate of no fault found. The replacement devices oftenexhibit the same or other failures which lowers customer satisfactionwith the product offering and as soon as practicable, the customerdeparts for another vendor. Thus the cost of acquiring new customers isaggravated with the cost of replacing lost customers.

Commonly, customers report that the support organizations do notappreciate the problems, take a long time to make any progress, and havefew tools at hand. After a long and fruitless interaction, resetting thedevice to factory settings is the only suggestion. Analysis conducted atthe time of the support call may not expose the source of a problem thathas occurred in the past at a different location. By the time thecustomer has established connectivity with the support call line, theuseful data may have vanished, even though a customer may haveexperienced the same fault multiple times.

With the market for connected mobile devices accelerating, andsmartphones and tablets continuing their market penetration, supportcosts are sharply increasing, fueled by a combination of factors,including uncertified applications, new interfaces, complexity ofdevices, fragmentation of operating systems, and the frequency ofupdates.

Mobile operators typically have access to a wealth of data from theirnetworks and some user-generated information, but they have littleinsight on what is happening on the device itself. Only device-sourcedmetrics can give operators a true representation of the performance of adevice to help resolve device support issues and improve the consumerexperience. Operators are constantly striving to increase servicequality and customer satisfaction to improve the overall customerexperience. There is a great need to focus on improved care,particularly from the consumer's perspective.

As is known, MapReduce refers to a programming model for processinglarge data sets with a parallel, distributed algorithm on a cluster. AMapReduce program is composed of a first procedure that performsfiltering and sorting (such as sorting into multiple queues) and asecond procedure that performs a summary operation (such as counting thenumber of occurrences in each queue, yielding frequencies). The“MapReduce System” (also called “infrastructure” or “framework”)orchestrates by marshalling the distributed servers, running the varioustasks in parallel, managing all communications and data transfersbetween the various parts of the system, and providing for redundancyand fault tolerance.

The model is inspired by the map and reduce functions commonly used infunctional programming, although their purpose in the MapReduceframework is not the same as in their original forms. Furthermore, thekey contributions of the MapReduce framework are not the actual map andreduce functions, but the scalability and fault-tolerance achieved for avariety of applications by optimizing the execution engine once.

MapReduce libraries have been written in many programming languages,with different levels of optimization. A popular open-sourceimplementation is Apache Hadoop. Discovering correlations or patternswithin large datasets is a suitable application of this parallelcomputing strategy. U.S. Pat. No. 7,650,331, SYSTEM AND METHOD FOREFFICIENT LARGE-SCALE DATA PROCESSING, issued Jan. 19, 2010, pertains tothis subject. But such simple parallel flow is not universallyapplicable to all problems poised for large datasets. It is theobservation of the Applicants that a conventional MapReduce style ofprocessing is unsatisfactory for low latency analysis such asinteractive customer support.

A long sought desire has been for a customer care solution aimed atreducing the duration of customer support calls, decreasing the numberof no-fault-found device returns, and improving the consumer experiencewith explicit permission from the end user, and without tangible impacton battery drain rates, data plan usage or user experience. Anyreduction in “no fault found” or in customer care call length increasesprofitability.

Both manufacturers and service providers have a desire to ensurecustomer satisfaction but each control only a piece of the puzzle i.e.the network and the end-user terminals and neither control the radiochannel across the planet.

Because end-users further have the ability to install many apps, notlong after any two mobile wireless devices have been in customer hands,their configurations are likely to diverge.

It can be difficult to first determine what is “normal” for millions ofmobile wireless devices, all slightly different. Then for any individualmobile wireless device user, is the hardware, software, or communicationchannel substantially divergent from normal for like peers or within arange of reasonable expectation? What is needed is a way to meaningfullyevaluate the performance of an individual mobile wireless device.

BRIEF DESCRIPTION OF DRAWINGS

To further clarify the above and other advantages and features of thepresent embodiments, a more particular description of the embodimentswill be rendered by reference to specific embodiments thereof which areillustrated in the appended drawings. It is appreciated that thesedrawings depict only typical embodiments and are therefore not to beconsidered limiting of its scope. The embodiments will be described andexplained with additional specificity and detail through the use of theaccompanying drawings in which:

FIG. 1 is a block diagram of an exemplary computer system;

FIG. 2 is a data flow diagram of packages being received and stored withindexes;

FIG. 3 is a data flow diagram of transformed metrics through anapparatus having a first silo of processors transforming metrics for afirst customer;

FIG. 4 shows expansion of a second silo to support a second customersupport transformation of metrics;

FIG. 5 shows initialization of the silo to specific transformations;

FIG. 6 illustrates the transformation of metrics can proceed alongalternate dimensions to arrive at comparable results;

FIG. 7-8 are illustrations of method flowcharts of steps performed by aprocessor of FIG. 1;

FIG. 9 is a system block diagram of an embodiment; and

FIG. 10 is a block diagram of an apparatus aspect of an embodiment.

DETAILED DESCRIPTION

The subject matter of this patent application is a method andarchitecture which transforms measurements taken for a population inaggregate and also transforms measurements taken for a selected memberof the population for comparison.

Measurements are taken at each mobile wireless device and subsequentlystored and aggregated.

Each member of a mobile wireless population is configured with a datacollection agent which collects data according to a modifiable datacollection profile. The collected data are packaged and uploaded to adistributed store. Massive parallel transformations anonymize,aggregate, and abstract the performance characteristics in amulti-dimensional space. This overcomes a huge volume of data todiscover trends and network related inadequacies for planning andoptimization.

Upon demand, data from individual mobile wireless devices may beextracted for comparison.

But having all the comparable values for every individual is uneconomicand unwieldy. An embodiment provides that the data packages from aselected data collection agent can be located for a period of time andthe same transformations can be applied in miniature to obtainstatistics which are comparable to the aggregates.

Analyze variances to ID potential causes of customer dissatisfaction.

Possibly the customer is dissatisfied by not knowing that his perceivedperformance is within the range acceptable to all users generally. Orthere may be a particular out of normal set of measurements that suggesta remedy or at least a problem analysis flow or pattern. Rather thandepend on subjective perception of what is good or bad, or seek toachieve arbitrary thresholds of acceptance, a comparison with whateveris normal across a category of like users can be insightful.

Detailed and immediate issue resolution and remedies for better costsand revenue.

Avoiding the return and refurbishment of equipment which are withinspec, and increasing loyalty and satisfaction of customer/subscriberscan lower costs and increase margins and profitability. Being responsivein identifying a specific individual problem and offering a particularremedy can change the perception of a supplier's reputation.

Identical transformations applied to an individual device as well asacross the entire comparable population of devices enables reactive careto a customer incident.

As data packages are received from individual devices and stored into adistributed store, a record is kept enabling retrieval of any specificdevice during a range of time (e.g. last 72 hours). The transformationscan be performed both in parallel for the population of all devices as ascheduled job, and can also be performed on-demand for packages from asingle device in a matter of seconds or minutes. The identicaltransformations enable meaningful comparison of a specific user'sresults with the group of like users. This can be accomplished while theuser is on the phone to his support center. Then individualizedsuggestions can be made in real time to adjust settings or installpertinent updates.

Reference will now be made to the drawings to describe various aspectsof example embodiments. It should be understood that the drawings arediagrammatic and schematic representations of such exemplary embodimentsand, accordingly, are not limiting of the scope of the presentembodiments, nor are the drawings necessarily drawn to scale. In thefollowing description, numerous details are set forth. It will beapparent, however, to one skilled in the art, that the presentembodiments may be practiced without these specific details. In otherinstances, well-known structures and devices are shown in block diagramform, rather than in detail, in order to avoid obscuring the presentembodiments.

Some portions of the detailed descriptions which follow are presented interms of algorithms and symbolic representations of operations on databits within a computer memory. These algorithmic descriptions andrepresentations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here, and generally,conceived to be a self-consistent sequence of steps leading to a desiredresult. The steps are those requiring physical manipulations of physicalquantities. Usually, though not necessarily, these quantities take theform of electrical or magnetic signals capable of being stored,transferred, combined, compared, and otherwise manipulated. It hasproven convenient at times, principally for reasons of common usage, torefer to these signals as bits, values, elements, symbols, characters,terms, numbers, or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the following discussion,it is appreciated that throughout the descriptions, discussionsutilizing terms such as “processing” or “computing” or “calculating” or“determining” or “displaying” or the like, refer to the action andprocesses of a computer system, or similar electronic computing device,that manipulates and transforms data represented as physical(electronic) quantities within the computer systems registers andmemories into other data similarly represented as physical quantitieswithin the computer system memories or registers or other suchnon-transitory information storage, communication circuits fortransmitting or receiving, or display devices.

The present embodiments also relate to an apparatus for performing theoperations herein. This apparatus may be specifically constructed forthe required purposes, or it may comprise application specificintegrated circuits which are mask programmable or field programmable,or it may comprise a general purpose processor device selectivelyactivated or reconfigured by a computer program comprising executableinstructions and data stored in the computer. Such a computer programmay be stored in a non-transitory computer readable storage medium, suchas, but not limited to, any type of disk including floppy disks, opticaldisks, CD-ROMs, magnetic-optical disks, solid state disks, flash memory,read-only memories (ROMs), random access memories (RAMs), EPROMS,EEPROMS, magnetic or optical cards, or any type of non-transitory mediasuitable for storing electronic instructions, and each coupled to acomputer system data channel or communication network.

The algorithms and displays presented herein are not inherently relatedto any particular computer, circuit, or other apparatus. Variousconfigurable circuits and general purpose systems may be used withprograms in accordance with the teachings herein, or it may proveconvenient to construct more specialized apparatus to perform therequired method steps in one or many processors. The required structurefor a variety of these systems will be apparent from the descriptionbelow. In addition, the present embodiments are not described withreference to any particular programming language or operating systemenvironment. It will be appreciated that a variety of programminglanguages, operating systems, circuits, and virtual machines may be usedto implement the embodiments as described herein.

To take advantage of a large array of available compute engines, theproblem is broken up to provision metrics to measures transformations inparallel to a large number of compute engines local to the data packageswhich minimizes data transfer. The same or other compute engines operateon a plurality of measures output from the metrics to measurestransformation to enrich the measures by applying correlations based ontime. As data packages are presented to the metrics to measurestransformations in sequential time, the enrichments can continue toimprove the information by inferences based on correlations of events intime sequence.

From the continuously improving enriched measures, certain KeyPerformance Indicators (KPI) are derived. A third set oftransformations, which may be assigned to compute engines, operate onthe enriched measures to generate KPI for the population of wirelessmobile devices as a whole or for selected subsets.

Referring now to FIG. 4, Mode 2 in an embodiment, a sequential indexedaccess method allows direction of data collection packages from anindividual wireless mobile device as the distributed files system isstreamed to a customer care silo which comprises compute enginesconfigured to make certain transformations of a flow. One or morecompute engines are configured to read certain memory addresses andtransform metrics to measures and write them to another memory address.Disk I/O is eliminated for the silo.

A second compute engine or group of compute engines performscorrelations on the measures to enrich the measures over time i.e. overa series of data packages. The enriched measures are written at anothermemory address.

When storage at that memory address is occupied, a third compute engine(having been so configured) operates on the enriched measures togenerate Key Performance Indicators (KPI) that are comparable to the KPIgenerated on the whole population or any subset. A second siloillustrates that the same flow or a different flow can be provisioned toanother group of compute engines which depend on data being transferredinto their respective input memory addresses such as when a secondcustomer calls for care.

Referring to FIG. 6, a distributed file system contains multiple largeblocks of sequentially received and stored data collection packagestransmitted from a plurality of wireless devices on conditions specifiedin their respective data collection packages. The data and time of thereception/storage is subsequent and asynchronous from the collection ofthe data at the wireless mobile device. The file system supportsprocessors both in a conventional mode and in a hot mode.

In mode 1, a conventional multiprocessor application, the results areaggregate results at every stage. Compute nodes may operate at more thanone task, KPI generation, enrichment, or transforming metrics tomeasures as assigned. In mode 2 a compute node remains assigned to atask even when idle during one assignment. Some resources are alwaysunder utilized to enable low latency response to a customer request.

In another embodiment, an array of nodes dynamically operated as aHadoop framework is reconfigured upon demand to provide low latencysupport for individual customers. Data packages are poured through amesh of map reduce daemons to determine enriched facts.

In comparison, a conventional Map/Reduce environment, data isunstructured and streamed to a plurality of parallel localized nodes.The massively parallel operation of all steps is accomplished by thestages of Map and subsequent Reduce.

The present embodiment includes a step of indexing the data packages asthey arrive and are stored as illustrated in FIG. 2. Because thecustomer care requirement is relatively low volume, the data packagesare removed from storage in a skipping sequential manner and directed toa Map/Reduce silo at a single node. Each transformation is identical tothose applied to the entire data set in conventional Map/Reduceoperations so that comparisons with “normal” or “typical” values aremeaningful.

One aspect of the embodiments are methods when performed by processorsthat infer one of three types of patterns:

Inferencing Causality. A first event which generally precedes a secondevent within a range of time or events is associated as having a causeand effect relationship.

Inferencing Assertion/Assumption. A first event is assumed to besuccessful by assertion unless an objection is signaled within a rangeof time or events. Until a second event is received which “objects” tothe first event, the first event is considered successful. In this case,silence implies success or validity.

Inferencing Propinquity. Two events may not be simultaneous or it maynot be possible to determine their position in absolute time but withina range they may be determined as propinquitous.

A distinguishing characteristic of this embodiment is a method forstreamlining Hadoop Map/Reduce through in-memory buckets as shown inFIG. 3.

Instead of scheduling Mapping in parallel at a plurality of nodes toreceive and process data streamed from a storage, each desiredMap/Reduce operation is hot and reads from an in-memory bucket andwrites to an in-memory bucket.

In an embodiment, rather than having a sequence of Maps scheduled toeach node, a plurality of nodes is permanently operating one of asequence of Map and Reduce operations whose inputs and outputs arechained together by memory locations as shown in FIG. 4.

Some measure transformations require a series of map and reduceoperations. Where these are the case, a pipeline consists of nodes eachcontinuously operating a transformation and in-memory locations thatstore as intermediate results. Once a data package is stored in thefirst in-memory location, it is transformed by each node in turn untilthe output is in the last in-memory location as shown in FIG. 5. Thecustomer care process begins by indexing every received data packet byits source storing the location in a file system. When a particularsource is identified for analysis the index data base allows a stream ofdata packages all from the some source to be placed in the firstin-memory location of a silo. In an embodiment, nodes are removed fromthe Hadoop system and configured into silos as customer care requestsramp up and are dynamically returned to the Hadoop system when notrequired for a customer care silos. When an empty silo becomesoperational by receiving data in its first in-memory location, morenodes are removed from Hadoop and are configured as a hot silo.

Referring now to FIG. 2, an aspect of the present embodiment is indexingdata packages by customer sequentially as they are received from thedata package collectors and stored into the distributed file system. Theindex can be a separate database or simply added to each unstructureddata element before it is stored. The index enables the method to skipforward to the next sequential location of a data package from aselected customer. It can be nearly as fast as streaming and theindependent data blocks can be scanned in parallel. In an embodiment,map and reduce transformations do not depend on strict time ordereddelivery of data packages because data collection and data transmissionare not tightly coupled.

Referring now to FIG. 3, the customer care package picker has received arequest to support a particular customer. Because all packages stored inthe distributed file system have been sequentially indexed, each packagepoints to the next and the file system can be efficiently traversed fromsome time in the past to the immediate present. The oldest packages arepresented first to memory address 0 and transformed by MAP 1 in the sameway as Hadoop would handle it. Instead of writing back into thedistributed file system however, the silo has dedicated memory addressesfor the outputs of each of the transformations. This avoid disk I/O andimproves latency. As soon as memory address I is populated, the nexttransforms reduce 2 a and reduce 2 b can begin. FIG. 3 illustrates thatmap 3 b, map 3 c and reduce 4 d and reduce 4 e are ready and waiting fordata to arrive in their respective input memory addresses. There is noclock or scheduler. When data is available, the process operates on itand writes to the output memory address.

Referring now to FIG. 4, as data packages are percolating through thefirst silo, a second silo can be readied for operation. Nodes are takenfrom the Hadoop pool and configured to run as data driven Map or Reducedaemons. Each transformation is driven by data being written into itsinput memory address. Until the first memory address is occupied, thenodes are idle. When no new data is placed into memory address 0, thefirst silo quiesces after all the transitions drop through to the silo.Silo 1 will be up to date with the latest data packages provided by therequesting customer. Because the same map and reduce transformations areused in the Hadoop pool, comparisons with typical or normal are valid.

Referring now to FIG. 5, a second customer care request is beginning tobe serviced. The customer care package picker starts using an indexedsequential access method to pull data packages from a second customer inapproximately sequential order out of the distributed file system andloads memory address X of the second silo. The first node of the secondsilo already has Map 1 loaded and ready to transform the contents ofmemory address X when it becomes non-empty. It will write its resultinto memory address XI when done which will initiate the Reduce 2 a andReduce 2 b nodes. The data propagates through the silo to memory addressXIV. Additional data packages of the second customer are streamed intomemory address X as soon as it becomes available i.e. after Map 1 haswritten to memory address Xl. In an embodiment, a third silo can beconfigured to be ready for a third customer care request by removingthem from the on-going Hadoop pool. The first silo can be returned touse when the customer care interaction is completed either as a hot siloor broken down and returned to the Hadoop pool.

Referring now to FIG. 6, a conventional map reduce architecture provideda large number of nodes which enjoy fast access to a sub part of adistributed file system. Because the map reduce process breaks a problemup, many nodes operate the same transformation in parallel.Conventionally, data is transformed in time sequence by one of manylocal nodes and the result is returned to the initiating node for reduceoperation. The advantage of conventional map reduce is that it takesadvantage of many inexpensive resources to attack a big data networkcharacterization problem. Unfortunately what is needed is a reducedlatency solution for individual customers, which allows comparison withthe population as a whole.

FIG. 7-8 illustrates embodiments of steps which when performed by aprocessor are a method.

One aspect of this embodiment is that the method executes either in adistributed Hadoop map/reduce environment or in memory.

One aspect of this embodiment is a framework for producing rich factsand KPIs (Key Performance Indicators) from metrics collected fromwireless devices. The framework provides both Java APIs and an XMLsyntax for expressing the particular facts and KPIs to produce. Eachparticular executable instantiation of these Java and XML artifacts isreferred to below as a flow. This framework supports differentdeployment models for a flow:

Full Batch (Hadoop Map/Reduce)

On-demand (in memory, not using Hadoop)

All deployment models concern the manner in which the huge amount ofdata from phones gets divided up into manageable amounts that can becomputed. This embodiment addresses the previously unsolved challenge toensure consistent results when dividing the data into chunks, as well asachieve acceptable turn-around time (measured in hours for batch andseconds for on-demand).

The on-demand customer care flow provides very rapid response to acustomer service representative interacting live with a customerexperiencing a problem with their device or the service that they arereceiving. An on-demand customer care flow is initialized once and runmultiple times. Each time that the flow is executed, it is passeduploads for one particular customer.

The on-demand customer care flow is distinguished by not running on agrid. Instead the measure assembly line processes the uploads andproduces the measures.

Unlike conventional methods the intermediate measures are not written todisk. Instead the measures are kept in memory and passed to the nextenrichment that consumes them. Intermediate measures are normallydiscarded from memory after each execution of the flow. Injectedmeasures are produced only during the first execution of the flow. Anyenriched measure that is produced solely from injected measures willalso be produced only during the first execution of the flow. If suchmeasures are used only as direct inputs then they will be discarded frommemory after the first execution of the flow. (Note that the measuredefinition that was initialized with the direct input measures will havesome or all that information in its own hash map). But if an injectedmeasure is processed as bucketed input to an enrichment that alsoconsumes customer-related packages, as in a join cached measure, thenthat intermediate output will be retained and be completely reprocessedin every execution of a flow.

Instead, this embodiment fully processes the data collected in the 24hours since the last batch, and combine it with data collected in the 30previous daily batch runs. But because lots of data gets correlated oraggregated across day boundaries, and because a lot of the data that wecollect each day reflect events that occurred on the phone several daysor more earlier, it is extremely challenging to figure out whatcomputations performed on prior days need to be redone today.

The on-demand customer care flow provides very rapid response to acustomer service representative interacting live with a customerexperiencing a problem with their device or the service that they arereceiving.

An on-demand customer care flow is initialized once and run multipletimes. Each time that the flow is executed, it is passed uploads for oneparticular customer.

In an embodiment the measure assembly line processes the uploads andproduces the measures. The intermediate measures are not written to diskas is done conventionally. Instead the measures are kept in memory andpassed to the next enrichment that consumes them. Intermediate measuresare normally discarded from memory after each execution of aconventional flow.

One aspect of this embodiment is a method for performing steps by aplurality of processors as illustrated in FIG. 7 comprising: indexing701 all received uploads to enable low latency access to all uploads fora device; executing flows 703 as an assembly line in memory, eachprocessor reading 705 a first data package from a first location andwriting 707 to a second location whereby disk operations are minimized;operating 709 a low latency grid computing framework which scales; andpersisting and retrieving 710 key performance indicators (kpi) and factsfor on-demand speedy access.

In an embodiment the method further includes processes as illustrated inFIG. 8: receiving 801 a selection of a customer; retrieving 802 datapackages provided by the selected customer from a distributed filesystem; storing 803 data from the data packages into a first location ofdata storage according to a first memory address; transforming 804 by afirst processor, the data read from the first memory address accordingto a first plurality of instructions from an instruction store; storing805 the result of the transformation into a second location of datastorage according to a second memory address; transforming 806 by asecond processor, the data read from the second memory address accordingto a second plurality of instructions from the instruction store; andstoring 808 the result of the transformation by the second processorinto a third location of data storage according to a third memoryaddress.

Another aspect of this embodiment is a silo system 900 as illustrated inFIG. 9 comprising: a plurality of data package collectors 902, thecollectors communicatively coupled to at least one mobile device 901configured with a data collection agent, each data package collectorfurther coupled to a data package sequential indexer by customer circuit903, said data package sequential indexer circuit coupled to adistributed file system 910 whereby map/reduce circuits determinemetrics for the population of mobile devices; the distributed filesystem further coupled to a customer care package picker 921 wherebypackages collected from a selected customer are directed to a locationof non-transitory storage at a first memory address 931; the location ofnon-transitory storage at a first memory address communicatively coupledto a first processor 941; the first processor which executesinstructions to perform a first transformation and store a first resultinto a location of non-transitory storage at a second memory address932; the location of non-transitory storage at a second memory addresscommunicatively coupled to a second processor 942; and the secondprocessor which executes other instructions to perform a secondtransformation and store a second result into the distributed filesystem 933, whereby a silo is kept ready for transformation of datawhenever a customer is selected.

Another aspect of this embodiment is an apparatus 1000 as illustrated inFIG. 10 comprising a plurality of processors, non-transitory data andinstruction storage, and a customer care package picker circuit; thecustomer care package picker circuit coupled to a distributed filesystem whereby data from packages received from a selected customer areread and stored to a first location in data storage; a first processor1041, performing steps from instruction storage, coupled to the firstlocation 1031 in data storage, to transform the data stored in the firstlocation in data storage and to store the result into a second location1032 in data storage; a second processor 1042 coupled to the secondlocation in data storage, performing steps from instruction storage, totransform the data stored in the second location in data storage and tostore the result into a third location 1033 in data storage, wherebyprocessors form a silo of transformations.

CONCLUSION

The method of operation is easily distinguished from conventionalparallel processing approaches by assigning a specific transformationsuch as a map or a reduce function to a processor, which is data drivenby a memory location.

It is distinguishing characteristic that each stage of a transformationhas a dedicated memory output location, which may be the source ofanother stage.

The techniques described herein can be implemented in digital electroniccircuitry, or in computer hardware, firmware, software, or incombinations of them. The techniques can be implemented as a computerprogram product, i.e., a computer program tangibly embodied in aninformation carrier, e.g., in a machine-readable storage device or in apropagated signal, for execution by, or to control the operation of,data processing apparatus, e.g., a programmable processor, a computer,or multiple computers. A computer program can be written in any form ofprogramming language, including compiled or interpreted languages, andit can be deployed in any form, including as a stand-alone program or asa module, component, subroutine, or other unit suitable for use in acomputing environment. A computer program can be deployed to be executedon one computer or on multiple computers at one site or distributedacross multiple sites and interconnected by a communication network.

Method steps of the techniques described herein can be performed by oneor more programmable processors executing a computer program to performfunctions of the embodiments by operating on input data and generatingoutput. Method steps can also be performed by, and apparatus of theembodiments can be implemented as, special purpose logic circuitry,e.g., an FPGA (field programmable gate array) or an ASIC(application-specific integrated circuit). Modules can refer to portionsof the computer program and/or the processor/special circuitry thatimplements that functionality.

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read-only memory ora random access memory or both. The essential elements of a computer area processor for executing instructions and one or more memory devicesfor storing instructions and data. Generally, a computer will alsoinclude, or be operatively coupled to receive data from or transfer datato, or both, one or more mass storage devices for storing data, e.g.,magnetic, magneto-optical disks, or optical disks. Information carrierssuitable for embodying computer program instructions and data includeall forms of non-volatile memory, including by way of examplesemiconductor memory devices, e.g., EPROM, EEPROM, and flash memorydevices; magnetic disks, e.g., internal hard disks or removable disks;magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor andthe memory can be supplemented by, or incorporated in special purposelogic circuitry.

An Exemplary Computer System

FIG. 1 is a block diagram of an exemplary computer system that may beused to perform one or more of the functions described herein. Referringto FIG. 1, computer system 100 may comprise an exemplary client orserver 100 computer system. Computer system 100 comprises acommunication mechanism or bus 111 for communicating information, and aprocessor 112 coupled with bus 111 for processing information. Processor112 includes a microprocessor, but is not limited to a microprocessor,such as for example, ARM™, Pentium™, etc.

System 100 further comprises a random access memory (RAM), or otherdynamic storage device 104 (referred to as main memory) coupled to bus111 for storing information and instructions to be executed by processor112. Main memory 104 also may be used for storing temporary variables orother intermediate information during execution of instructions byprocessor 112.

Computer system 100 also comprises a read only memory (ROM) and/or otherstatic storage device 106 coupled to bus 111 for storing staticinformation and instructions for processor 112, and a non-transitorydata storage device 107, such as a magnetic storage device or flashmemory and its corresponding control circuits. Data storage device 107is coupled to bus 111 for storing information and instructions.

Computer system 100 may further be coupled to a display device 121 sucha flat panel display, coupled to bus 111 for displaying information to acomputer user. Voice recognition, optical sensor, motion sensor,microphone, keyboard, touch screen input, and pointing devices 123 maybe attached to bus 111 or a wireless interface 125 for communicatingselections and command and data input to processor 112.

Note that any or all of the components of system 100 and associatedhardware may be used in the present embodiments. However, it can beappreciated that other configurations of the computer system may includesome or all of the devices in one apparatus, a network, or a distributedcloud of processors.

The embodiments described herein may include the use of a specialpurpose or general-purpose computer including various computer hardwareor software modules, as discussed in greater detail below.

Embodiments within the scope of the present disclosure also includenon-transitory, computer-readable media for carrying or havingcomputer-executable instructions or data structures stored thereon. Suchcomputer-readable media can be any available media that can be accessedby a general purpose or special purpose computer. By way of example, andnot limitation, such computer-readable media can comprise RAM, ROM,EEPROM, CD-ROM or other optical disk storage, magnetic disk storage orother magnetic storage devices, or any other non-transitory medium whichcan be used to store desired program code means in the form ofcomputer-executable instructions or data structures and which can beaccessed for execution by a general purpose or special purpose computerto perform a method as disclosed above.

Computer-executable instructions comprise, for example, instructions anddata which cause a general purpose computer, special purpose computer,or special purpose processing device to perform a certain function orgroup of functions. Although the subject matter has been described inlanguage specific to structural features and/or methodological acts, itis to be understood that the subject matter defined in the appendedclaims is not necessarily limited to the specific features or actsdescribed above. Rather, the specific features and acts described aboveare disclosed as example forms of implementing the claims.

As used herein, the term “module” or “component” can refer to softwareobjects or routines that execute on the computing system. The differentcomponents, modules, engines, and services described herein may beimplemented as objects or processes that execute on the computing system(e.g., as separate threads). While the system and methods describedherein are preferably implemented in software, implementations inhardware or a combination of software and hardware are also possible andcontemplated. In this description, a “computing entity” may be anycomputing system as previously defined herein, or any module orcombination of modulates running on a computing system.

Those skilled in the art will appreciate that the embodiments may bepracticed in network computing environments with many types of computingsystem configurations, including personal computers, hand-held devices,multi-processor systems, microprocessor-based or programmable consumerelectronics, network PCs, minicomputers, mainframe computers, and thelike. The embodiments may also be practiced in distributed computingenvironments where tasks are performed by local and remote processingdevices or servers that are linked (either by hardwired links, wirelesslinks, or by a combination of hardwired or wireless links) through acommunications network. In a distributed computing environment, programmodules may be located in both local and remote memory storage devices.

The present embodiments may also be embodied in other specific formswithout departing from its spirit or essential characteristics. Thedescribed embodiments are to be considered in all respects only asillustrative and not restrictive. The scope of the embodiments are,therefore, indicated by the appended claims rather than by the foregoingdescription. All changes which come within the meaning and range ofequivalency of the claims are to be embraced within their scope. Anumber of embodiments of the present application have been described.Nevertheless, it will be understood that various modifications may bemade without departing from the spirit and scope of the embodiments. Forexample, other network topologies may be used. Accordingly, otherembodiments are within the scope of the following claims.

We claim:
 1. A method, comprising: allocating, by a system comprising aprocessor, a first group of processor nodes from a distributed pool ofprocessor nodes to a customer problem resolution process; and executing,by the system, the customer problem resolution process, using a secondgroup of random access memory locations of a random access memory deviceof the system and the first group of processor nodes, on a data packagecomprising metrics collected by a user equipment in associated with aproblem experienced by the user equipment, the executing comprising:storing the data package in a first random access memory location of thesecond group of random access memory locations, and wherein eachprocessor node of the first group of processor nodes executes adifferent sub-process of sub-processes of the customer problemresolution process in a first sequential order, the performingcomprising: reading previous resulting data from a previous randomaccess memory location in a second sequential order of the random accessmemory locations of the second group, and writing resulting data fromthe sub-process associated with the processor node in a next randomaccess memory location in the second sequential order, wherein a firstprocessor node of the first group of processor nodes reads the datapackage from the first random access memory location to perform thesub-process associated with the first processor node.
 2. The method ofclaim 1, wherein executing the customer problem resolution processcomprises executing the customer problem resolution process withoutwriting contents of the second group of random access memory locationsto a disk storage of the system.
 3. The method of claim 1, where a lastrandom access memory location in the second sequential order comprisesresolution data representative of a resolution for the problemdetermined by the customer problem resolution process.
 4. The method ofclaim 3, wherein the resolution data comprises installation data relatedto installing an update on the user equipment.
 5. The method of claim 3,wherein the resolution data comprises adjustment data related toadjusting a setting of the user equipment.
 6. The method of claim 3,wherein the user equipment is a first user equipment, and wherein theresolution is determined based on a second user equipment havingsatisfied a similarity criterion and that has resolved the problem. 7.The method of claim 1, further comprising, receiving, by the system, thedata package in a request from the user equipment to perform thecustomer problem resolution process.
 8. A system, comprising: aprocessor; and a memory that stores executable instructions that, whenexecuted by the processor, facilitate performance of operations,comprising: assigning a first group of processor nodes from adistributed pool of processor nodes to a customer care process; andexecuting the customer care process, using a second group of randomaccess memory locations of a random access memory device accessible tothe system and the first group of processor nodes, on a data packagecomprising metrics collected by a communication device in associatedwith a problem experienced by the communication device, the executingcomprising: storing the data package in a first random access memorylocation of the second group of random access memory locations, andperforming the customer care process, where each processor node of thefirst group of processor nodes performs a different sub-process ofsub-processes of the customer care process in a first sequential order,the performing comprising: reading previous resulting data from aprevious random access memory location in a second sequential order ofthe random access memory locations of the second group, and writingresulting data from the sub-process associated with the processor nodein a next random access memory location in the second sequential order,wherein a first processor node of the first group of processor nodesreads the data package from the first random access memory location toperform the sub-process associated with the first processor node.
 9. Thesystem of claim 8, wherein executing the customer care process isperformed without writing contents of the second group of random accessmemory locations to a disk storage of the system.
 10. The system ofclaim 8, where a last random access memory location in the secondsequential order comprises resolution data representative of aresolution for the problem determined by the customer care process. 11.The system of claim 10, wherein the resolution data comprises an updateto install on the communication device.
 12. The system of claim 10,wherein the resolution comprises adjusting a setting of thecommunication device.
 13. The system of claim 10, wherein thecommunication device is a first communication device, wherein theresolution is based on a second communication device satisfying asimilarity criterion, and wherein the resolution previously resolved theproblem.
 14. The system of claim 8, wherein the operations furthercomprise receiving the data package in a request from the communicationdevice to perform the customer care process.
 15. A non-transitorymachine-readable medium, comprising executable instructions that, whenexecuted by a processor, facilitate performance of operations,comprising: assigning a first group of processor nodes from adistributed pool of processor nodes to a device analysis process; andexecuting the device analysis process, using a second group of randomaccess memory locations of a random access memory device and the firstgroup of processor nodes, on a dataset comprising metrics collected by amobile device in associated with a problem experienced by the mobiledevice, the executing comprising: storing the dataset in a first randomaccess memory location of the second group of random access memorylocations, and performing the device analysis process, wherein eachprocessor node of the first group of processor nodes performs adifferent sub-process of sub-processes of the device analysis process ina first sequential order, the performing comprising: reading previousresulting data from a previous random access memory location in a secondsequential order of the random access memory locations of the secondgroup, and writing resulting data from the sub-process associated withthe processor node in a next random access memory location in the secondsequential order, wherein a first processor node of the first group ofprocessor nodes reads the dataset from the first random access memorylocation to perform the sub-process associated with the first processornode.
 16. The non-transitory machine-readable medium of claim 15,wherein executing the device analysis process is performed withoutwriting contents of the group of random access memory locations to adisk storage of the system.
 17. The non-transitory machine-readablemedium of claim 15, where a last random access memory location in thesecond sequential order comprises a resolution for the problemdetermined by the device analysis process.
 18. The non-transitorymachine-readable medium of claim 17, wherein the resolution comprisesinstalling a software update on the mobile device.
 19. Thenon-transitory machine-readable medium of claim 17, wherein theresolution comprises adjusting an operating parameter of the mobiledevice.
 20. The non-transitory machine-readable medium of claim 17,wherein the resolution is based on at least one other mobile devicesatisfying a similarity criterion and having been determined to haveresolved the problem.